package com.server;

import java.sql.ResultSet;
import java.sql.SQLException;

public class XMLServerResponses {

	public static String sendRelatorios(ResultSet relatorios) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"relatorios\">");
		xmlString.append("<relatorios>");
		while (relatorios.next()) {
			xmlString.append("<relatorio>");
			xmlString.append("<idRelatorio>" + relatorios.getString("idRelatorio") + "</idRelatorio>");
			xmlString.append("<nrVoos>" + relatorios.getString("nrVoos") + "</nrVoos>");
			xmlString.append("<nrReservas>" + relatorios.getString("nrReservas") + "</nrReservas>");
			xmlString.append("<percentagemLotacao>" + relatorios.getString("percentagemLotacao") + "</percentagemLotacao>");
			xmlString.append("<nrVoosCancelados>" + relatorios.getString("nrVoosCancelados") + "</nrVoosCancelados>");
			xmlString.append("<nrReservasCanceladas>" + relatorios.getString("nrReservasCanceladas") + "</nrReservasCanceladas>");
			xmlString.append("</relatorio>");
		}
		xmlString.append("</relatorios>");
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

	public static String sendFuncionarios(ResultSet funcionarios) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"funcionarios\">");
		xmlString.append("<funcionarios>");
		while (funcionarios.next()) {
			xmlString.append("<login>" + funcionarios.getString("login") + "</login>");
		}
		xmlString.append("</funcionarios>");
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

	public static String sendNotificacoes(ResultSet notificacoes) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"notificacoes\">");
		xmlString.append("<notificacoes>");
		while (notificacoes.next()) {
			xmlString.append("<notificacao>");
			xmlString.append("<idNotificacao>" + notificacoes.getString("idNotificacao") + "</idNotificacao>");
			xmlString.append("<idReserva>" + notificacoes.getString("idReserva") + "</idReserva>");
			xmlString.append("<descricao>" + notificacoes.getString("descricao") + "</descricao>");
			xmlString.append("</notificacao>");
		}
		xmlString.append("</notificacoes>");
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

	public static String sendReservas(ResultSet reservas) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"reservas\">");
		xmlString.append("<reservas>");
		while (reservas.next()) {
			xmlString.append("<reserva>");
			xmlString.append("<idReserva>" + reservas.getString("idReserva") + "</idReserva>");
			xmlString.append("<titulo>" + reservas.getString("titulo") + "</titulo>");
			xmlString.append("</reserva>");
		}
		xmlString.append("</reservas>");
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

	public static String sendDetalhesReserva(ResultSet detalhesReserva) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"detalhesReserva\">");
		xmlString.append("<detalhesReserva>");
		while (detalhesReserva.next()) {
			xmlString.append("<detalhes>");
			xmlString.append("<locais>" + detalhesReserva.getString("locais") + "</locais>");
			xmlString.append("<partida>" + detalhesReserva.getString("diaPartida") + "</partida>");
			xmlString.append("<chegada>" + detalhesReserva.getString("diaChegada") + "</chegada>");
			xmlString.append("<aviao>" + detalhesReserva.getString("TipoAviao") + "</aviao>");
			xmlString.append("<lugares>" + detalhesReserva.getString("lugares") + "</lugares>");
			xmlString.append("<tipoPagamento>" + detalhesReserva.getString("tipoPagamento") + "</tipoPagamento>");
			xmlString.append("<quantPagamento>" + detalhesReserva.getString("quantPagamento") + "</quantPagamento>");
			xmlString.append("</detalhes>");
		}
		xmlString.append("</detalhesReserva>");
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

	public static String sendViagens(ResultSet viagens) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"viagens\">");
		xmlString.append("<viagens>");
		while (viagens.next()) {
			xmlString.append("<viagem>");
			xmlString.append("<idViagem>" + viagens.getString("idViagem") + "</idViagem>");
			xmlString.append("<titulo>" + viagens.getString("titulo") + "</titulo>");
			xmlString.append("</viagem>");
		}
		xmlString.append("</viagens>");
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

	public static String sendDetalhesViagem(ResultSet detalhesViagem) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"detalhesViagem\">");
		if (detalhesViagem.next()) {
			xmlString.append("<detalhes>");
			xmlString.append("<locais>" + detalhesViagem.getString("locais") + "</locais>");
			xmlString.append("<partida>" + detalhesViagem.getString("diaPartida") + "</partida>");
			xmlString.append("<chegada>" + detalhesViagem.getString("diaChegada") + "</chegada>");
			xmlString.append("<idaviao>" + detalhesViagem.getString("IdAviao") + "</idaviao>");
			xmlString.append("<aviao>" + detalhesViagem.getString("TipoAviao") + "</aviao>");
			xmlString.append("<preco>" + detalhesViagem.getString("preco") + "</preco>");
			xmlString.append("<lotacao>" + detalhesViagem.getString("lotacao") + "</lotacao>");
			xmlString.append("<tripulantes>" + detalhesViagem.getString("tripulantes") + "</tripulantes>");
			xmlString.append("</detalhes>");
		}
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

	public static String sendClientes(ResultSet clientes) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"clientes\">");
		xmlString.append("<clientes>");
		while (clientes.next()) {
			xmlString.append("<login>" + clientes.getString("login") + "</login>");
		}
		xmlString.append("</clientes>");
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

	public static String sendTripulantes(ResultSet tripulantes) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"tripulantes\">");
		xmlString.append("<tripulantes>");
		while (tripulantes.next()) {
			xmlString.append("<login>" + tripulantes.getString("login") + "</login>");
		}
		xmlString.append("</tripulantes>");
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

	public static String sendAvioes(ResultSet avioes) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"avioes\">");
		xmlString.append("<avioes>");
		while (avioes.next()) {
			xmlString.append("<aviao>");
			xmlString.append("<idAviao>" + avioes.getString("idAviao") + "</idAviao>");
			xmlString.append("<TipoAviao>" + avioes.getString("TipoAviao") + "</TipoAviao>");
			xmlString.append("</aviao>");
		}
		xmlString.append("</avioes>");
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

	public static String sendDetalhesFuncionario(ResultSet detalhesFuncionario) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"detalhesFuncionario\">");
		xmlString.append("<detalhes>");
		if(detalhesFuncionario.next()){
			xmlString.append("<login>" + detalhesFuncionario.getString("login") + "</login>");
			xmlString.append("<password>" + detalhesFuncionario.getString("password") + "</password>");
			xmlString.append("<bi>" + detalhesFuncionario.getString("bi") + "</bi>");
			xmlString.append("<nome>" + detalhesFuncionario.getString("nome") + "</nome>");
			xmlString.append("<email>" + detalhesFuncionario.getString("email") + "</email>");
			xmlString.append("<telemovel>" + detalhesFuncionario.getString("telemovel") + "</telemovel>");
			xmlString.append("<funcao>" + detalhesFuncionario.getString("funcao") + "</funcao>");
		}
		xmlString.append("</detalhes>");
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

	public static String sendDetalhesCliente(ResultSet detalhesCliente) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"detalhesCliente\">");
		xmlString.append("<detalhesCliente>");
		while (detalhesCliente.next()) {
			xmlString.append("<detalhes>");
			xmlString.append("<login>" + detalhesCliente.getString("login") + "</login>");
			xmlString.append("<password>" + detalhesCliente.getString("password") + "</password>");
			xmlString.append("<bi>" + detalhesCliente.getString("bi") + "</bi>");
			xmlString.append("<nome>" + detalhesCliente.getString("nome") + "</nome>");
			xmlString.append("<email>" + detalhesCliente.getString("email") + "</email>");
			xmlString.append("<telemovel>" + detalhesCliente.getString("telemovel") + "</telemovel>");
			xmlString.append("<funcao>" + detalhesCliente.getString("funcao") + "</funcao>");
			xmlString.append("</detalhes>");
		}
		xmlString.append("</detalhesCliente>");
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

	public static String sendDetalhesTripulante(ResultSet detalhesTripulante) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"detalhesTripulante\">");
		xmlString.append("<detalhesTripulante>");
		while (detalhesTripulante.next()) {
			xmlString.append("<detalhes>");
			xmlString.append("<login>" + detalhesTripulante.getString("login") + "</login>");
			xmlString.append("<password>" + detalhesTripulante.getString("password") + "</password>");
			xmlString.append("<bi>" + detalhesTripulante.getString("bi") + "</bi>");
			xmlString.append("<nome>" + detalhesTripulante.getString("nome") + "</nome>");
			xmlString.append("<email>" + detalhesTripulante.getString("email") + "</email>");
			xmlString.append("<telemovel>" + detalhesTripulante.getString("telemovel") + "</telemovel>");
			xmlString.append("<funcao>" + detalhesTripulante.getString("funcao") + "</funcao>");
			xmlString.append("</detalhes>");
		}
		xmlString.append("</detalhesTripulante>");
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

	public static String sendDetalhesAviao(ResultSet detalhesAviao) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"detalhesAviao\">");
		xmlString.append("<detalhesAviao>");
		while (detalhesAviao.next()) {
			xmlString.append("<detalhes>");
			xmlString.append("<tipoAviao>" + detalhesAviao.getString("tipoAviao") + "</tipoAviao>");
			xmlString.append("<lotacao>" + detalhesAviao.getString("lotacao") + "</lotacao>");
			xmlString.append("</detalhes>");
		}
		xmlString.append("</detalhesAviao>");
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}
	
	public static String sendReply(String _status, String of /* OK or FAIL */, String id, String opt_number) {
		/*
		 * <response> <type op="reply"> <what id="confirm">
		 * <confirm>OK</confirm> </what> </type> </response>
		 */

		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<request>");
		xmlString.append("<type op=\"reply\">");
		xmlString.append("<what id=\"confirm\" of=\"" + of + "\">");
		xmlString.append("<confirm>" + _status + "</confirm>");
		xmlString.append("<idof>" + id + "</idof>");
		xmlString.append("<number>" + opt_number + "</number>");
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</request>");
		return xmlString.toString();
	}

	public static String sendLocais(ResultSet locais) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"locais\">");
		xmlString.append("<locais>");
		while (locais.next()) {
			xmlString.append("<local>");
			xmlString.append("<idLocal>" + locais.getString("idLocal") + "</idLocal>");
			xmlString.append("<nome>" + locais.getString("NomeLocal") + "</nome>");
			xmlString.append("<coordX>" + locais.getString("coordX") + "</coordX>");
			xmlString.append("<coordY>" + locais.getString("coordY") + "</coordY>");
			xmlString.append("</local>");
		}
		xmlString.append("</locais>");
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

	public static String sendDetalhesLocal(ResultSet detalhesLocal) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"detalhesLocal\">");
		xmlString.append("<local>");
		detalhesLocal.next();
//		System.out.println(detalhesLocal.getInt("idLocal"));
//		System.out.println(detalhesLocal.getString("idLocal"));
//		System.out.println(detalhesLocal.getString("NomeLocal"));
		xmlString.append("<nome>" + detalhesLocal.getString("NomeLocal") + "</nome>");
		xmlString.append("<coordX>" + detalhesLocal.getString("coordX") + "</coordX>");
		xmlString.append("<coordY>" + detalhesLocal.getString("coordY") + "</coordY>");
		xmlString.append("</local>");
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

	public static String sendLocaisViagem(ResultSet locaisViagem) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"locaisViagem\">");
		while (locaisViagem.next()) {
			xmlString.append("<local>");
			xmlString.append("<id>" + locaisViagem.getString("idLocal") + "</id>");
			xmlString.append("<nomelocal>" + locaisViagem.getString("NomeLocal") + "</nomelocal>");
			xmlString.append("</local>");
		}
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

	public static String sendTripulantesViagem(ResultSet tripulantesViagem) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"tripulantesViagem\">");
		while (tripulantesViagem.next()) {
			xmlString.append("<login>" + tripulantesViagem.getString("login") + "</login>");
		}
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

	public static String sendLugaresReservados(ResultSet lugaresReservadosViagem) throws SQLException {
		StringBuffer xmlString = new StringBuffer();
		xmlString.append("<response>");
		xmlString.append("<type op=\"list\">");
		xmlString.append("<what id=\"lugaresReservados\">");
		xmlString.append("<lugares>");
		while (lugaresReservadosViagem.next()) {
			xmlString.append("<lugar>" + lugaresReservadosViagem.getString("posicao") + "</lugar>");
		}
		xmlString.append("</lugares>");
		xmlString.append("</what>");
		xmlString.append("</type>");
		xmlString.append("</response>");

		System.out.println("Vou enviar por client:\n" + xmlString.toString());
		return xmlString.toString();
	}

}
